ROM-based digital filters are well known in the prior art. Reviewing briefly, the ROM in such a filter serves as a table in which the filter output signal corresponding to any combination of the past N input signal samples can be looked up. Each stored output signal is the discrete convolution of one possible combination of the past N input signal samples with the respective coefficients of the desired filter impulse response. By addressing the ROM with data corresponding to the past N input signal samples, the desired output signal corresponding thereto can be obtained.
ROM-based digital filters find application in certain quadrature phase modulation systems. Such systems utilize complex data that is typically represented with data "symbols" of two bits each, thereby permitting representation of the four quadrature phase states. Each state can also be represented by the magnitude of its real and imaginary components (I and Q). Due to the precise modulation required in phase modulation systems, digital filters are found to be advantageous.
There are several types of quadrature phase modulation systems. In one, the conventional "quadrature phase shift keying" (QPSK) system, each data symbol corresponds to a fixed phase point on the I-Q plane. Symbol (0,0) may correspond to a phase state of 0.degree., symbol (1,0) may correspond to a phase state of 90.degree., etc.
In QPSK there are 4 potential phase states on the I-Q diagram. In an I-Q reference plane in which the phase states are positioned on the axes (as shown by the solid axes in FIG. 1), the I magnitude can assume one of three values, -1, 0 or 1, in the four phase states. So too with the Q magnitude. If the coordinate axes are rotated 45.degree., so that none of the phase states falls on the axes (as shown by the dashed axes in FIG. 1), the I and Q magnitudes are constrained to just two values, 0.707 or 0.707, in the four phase states.
In a second type of quadrature phase modulation system, termed "differential quadrature phase shift keying" (DQPSK), a data symbol does not represent a fixed phase state, but rather represents a fixed increment of phase rotation from the signal's prior phase state. For example, symbol (0,0) may correspond to a phase increment of 0.degree. from the last phase state, symbol (0,1) may correspond to a phase increment of 90.degree. from the last phase state, etc. Like QPSK, the resultant I and Q magnitudes in DQPSK can be represented by a minimum of two values, depending on orientation of the I-Q plane.
In a third type of quadrature phase modulation system, termed ".pi./4 differential quadrature phase shift keying" (.pi./4 DQPSK), the output signal phase is incremented from the prior signal phase in accordance with the symbol data, just like DQPSK, and is further incremented by 45.degree. (.pi./4) each successive symbol. This results in improved spectral quality in certain applications. The following table lists the phase shift resulting from each possible input symbol for the two modulation formats:
TABLE I ______________________________________ SYMBOL DQPSK .DELTA..phi. .pi./4 DQPSK .DELTA..phi. ______________________________________ 00 0.degree. (0.degree. + 45.degree.) = 45.degree. 01 90.degree. (90.degree. + 45.degree.) = 135.degree. 10 270.degree. (270.degree. + 45.degree.) = 315.degree. 11 180.degree. (180.degree. + 45.degree.) = 225.degree. ______________________________________
.pi./4 DQPSK modulation is best understood with reference to an example illustrating its use with an arbitrary data sequence. As can be seen from the following, another way of interpreting the .pi./4 DQPSK sequence is as the DQPSK sequence advanced by an offset phase, in which the offset phase advances 45.degree. (.pi./4 radians) during each successive symbol. In this example, the initial phase is 45.degree.:
TABLE II ______________________________________ Data: 00 01 10 11 01 00 10 11 ______________________________________ .phi. for DQPSK: 45.degree. 135.degree. 45.degree. 225.degree. 315.degree. 315.degree. 225.degree. 45.degree. offset phase: 45.degree. 90.degree. 135.degree. 180.degree. 225.degree. 270.degree. 315.degree. 0.degree. .phi. for .pi./4 DQPSK: 90.degree. 225.degree. 180.degree. 45.degree. 180.degree. 225.degree. 180.degree. 45.degree. ______________________________________
In .pi./4 DQPSK, it will be recognized that there are 8 potential phase states. In an I-Q reference plane in which alternating phase states are positioned on the axes (as shown by the solid axes in FIG. 2), the I magnitude can assume one of five values in the eight phase states. So can the Q magnitude. If the coordinate axes are rotated 22.5.degree., so that none of the phase states falls on the axes (as shown by the dashed axes in FIG. 2), the I and Q magnitudes are constrained to just four values in the eight phase states.
FIG. 3A shows a .pi./4 DQPSK modulation system 10 using conventional ROM-based filtering methodology. In the illustrated system, the pair of bits for each symbol are split from an input serial data stream a.sub.k by a serial to parallel converter 12. The first bit of each pair is provided on an output line A.sub.k. The second bit of each pair is provided on an output line B.sub.k. That is: ##EQU1## These two binary data streams are provided to a differential encoder 14. The differential encoder 14 makes the necessary phase rotations needed to translate the A.sub.k and B.sub.k input data to the current phase state (i.e. incremented from the prior phase state in accordance with the current data symbol), and produces two binary data streams X.sub.k and Y.sub.k. This function is accomplished by Boolean logic that implements the following functions: EQU X.sub.k =(A.sub.k .sym.B.sub.k).multidot.(A.sub.k .sym.X.sub.k-1)+(A.sub.k .sym.B.sub.k).multidot.(B.sub.k .sym.Y.sub.k-1) (1) EQU Y.sub.k =(A.sub.k .sym.B.sub.k).multidot.(B.sub.k .sym.Y.sub.k-1)+(A.sub.k .sym.B.sub.k).multidot.(A.sub.k .sym.X.sub.k-1) (2)
where .sym. represents an exclusive OR function, + represents an OR function, .multidot. represents an AND function, and expressions X.sub.k-1 and Y.sub.k-1 indicate the previous outputs from the encoder 14. Again, outputs X.sub.k and Y.sub.k uniquely designate absolute, rather than relative phase states.
The X.sub.k and Y.sub.k binary data from the differential encoder are converted into I and Q magnitudes (termed I.sub.k and Q.sub.k herein) by the block 16 labelled "transfer to the unit circle." The I.sub.k and Q.sub.k values are filtered with ROM-based digital baseband filters 18, 20.
The foregoing will be made clearer by the following example, in which the initial values of X.sub.k-1 and Y.sub.k-1 equal one:
TABLE III __________________________________________________________________________ a.sub.k : 00 01 10 11 01 00 10 11 A.sub.k : 0 0 1 1 0 0 1 1 B.sub.k : 0 1 0 1 1 0 0 1 A.sub.k .sym. B.sub.k : 0 1 1 0 1 0 1 0 A.sub.k .sym. B.sub.k : 1 0 0 1 0 1 0 1 A.sub.k .sym. .sup.-- X.sub.k-1 : 0 0 0 1 1 0 1 0 B.sub.k .sym. .sup.-- Y.sub.k-1 : 0 1 0 1 0 1 1 0 X.sub.k : 1 0 1 0 1 1 0 1 Y.sub.k : 1 1 1 0 0 0 0 1 C.sub.k : 1/.sqroot.2 -1/.sqroot.2 1/.sqroot.2 -1/.sqroot.2 1/.sqroot.2 1/.sqroot.2 -1/.sqroot.2 1/.sqroot.2 D.sub.k : 1/.sqroot.2 1/.sqroot.2 1/.sqroot.2 -1/.sqroot.2 -1/.sqroot.2 -1/.sqroot.2 -1/.sqroot.2 1/.sqroot.2 .DELTA..phi. 0.degree. 90.degree. 270.degree. 180.degree. 90.degree. 0.degree. 270.degree. 180.degree. __________________________________________________________________________
The "transfer to unit circle" block 16 in FIG. 3A is conceptual in nature. This function is actually implemented by the data stored in the ROM-based filters 18, 20. The actual implementation of this part of the circuitry is shown in FIG. 3B. The filter ROMs 18, 20 are addressed by shift registers 22, 24 which buffer the X.sub.k and Y.sub.k binary data stream from the differential encoder. The N-bit words so produced (here N=8) address locations in the ROMs in which the desired filtered I and Q signals corresponding to the past N symbol samples are stored. (In addition to the N-bit address words from each of shift registers 22, 24, the address lines for each ROM are also driven with an M-bit subinterval counter (here M=4) that permits outputting of 2.sup.M (16) subinterval states between the discrete input samples.)
It will be recognized that in this implementation, each ROM is driven with 2N+M address bits, requiring an address space of 2.sup.2N+M words This number becomes unwieldy in some applications. In the illustrated system 10, for example, each of ROMs 26, 28 must have an address space of 2.sup.20 for each channel. With currently available 16 address bit-ROMs, 16 ROMs are required for each channel, or a total of 32 for the illustrated system.
In accordance with the present invention, these memory requirements are reduced by defining each desired filtered output signal as the sum of two or more component terms. Each of these terms is uniquely defined by significantly less than the number of bits required by a conventional implementation (i.e. 2N+M), and thus can be stored and looked up in smaller memories. The outputs from these smaller memories can then be summed to yield the desired output signal.
In the illustrated application of the invention to a .pi./4 DQPSK modulator, the decomposition of the desired output signal into component terms is effected by exploitation of symmetries inherent in the modulation. These symmetries permit both the I and Q outputs to be defined as functions of a "sine" term and a "cosine" term. The I output is the difference between a sine term and a cosine term; the Q output is a sum.
The foregoing and additional features and advantages of the present invention will be more readily apparent from the following description thereof, which proceeds with reference to the accompanying drawings.